<?php

//Notas: 
//1.  si dividimos la hora de los pedidos cada 30 mins, podriamos configurar para que la base de datos
//	  actualice cada 30 mins la ubicacion de los empleados segun el pedido que se este cubriendo en ese instante
//    (es decir, direccion de usuario).
//2.  Faltan aplicar filtros por hora. Verificar si se encuentra dentro del radio de accion en la hora correspondiente.
//3	  Falta considerar la prioridad del pedido.

class Buscar_Nuevo_Empleado{
	
	private $empleados = Array();
	
	public function __construct($especialidad, $direccion_usuario_coordenadas){
	//__FILTRADO DE EMPLEADOS POR ESPECIALIDAD__
		$this->busqueda_por_especialidad($especialidad);		
		
	//__ORDENAR EMPLEADOS POR RDA Y BFS__
		$this->buscar_RDA($direccion_usuario_coordenadas); //agrega al comienzo de la lista los que se encuentran en el radio de accion
		$this->calcularBFS($direccion_usuario_coordenadas);
		$lista_empleados_disponibles=buscarBFS;
		return $lista_empleados_disponibles;
	
	}
	
	public function busqueda_por_especialidad($especialidad){
		//mysqli_connect(host,username,password,dbname);
		$con=mysqli_connect("example.com","peter","abc123","my_db");
		
		// Check connection
		if (mysqli_connect_errno()) {
			echo "Failed to connect to MySQL: " . mysqli_connect_error();
		} else{
			$result = mysqli_query($con,"SELECT * FROM empleados WHERE especialidad='".$especialidad."'");
			while($row = mysqli_fetch_array($result)) {
				$nro_empleado=$row['nro_empleado'];
				$nombre_empleado=$row['nombre'];
				$apellido_empleado=$row['apellido'];
				$dni_empleado=$row['dni'];
				$especialidad=$row['especialidad'];
				$ubicacion_actual=$row['ubicacion_actual'];
				$empleado= new Empleado($nro_empleado, $nombre_empleado, $apellido_empleado, $dni_empleado, $especialidad, $ubicacion_actual);
				array_push($this->empleados, $empleado);
			}
		}
	}
	
	public function buscar_RDA(){
		//Usando la lista de empleados, verifica primero si cada empleado tiene otro pedido en un rango de 30 mins a una hora.
		//Si existe alguien que tenga otro pedido, verifica si se encuentra dentro del radio de accion. 
		//si no existe ninguno, verifica la posicion de cada empleado (analizar esto) para determinar si se encuentra dentro del RDA.
		// para verificar esto el metodo debe comparar la direccion de destino con la ubicacion actual de cada empleado
	}
		
	public function calcularBFS($direccion_usuario_coordenadas){
		$resultado_BFS= new BFS($direccion_usuario_coordenadas);
		//Ver que hacer con resultado y empleados
	}
}